﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Cotizav.CONEXION;
using Cotizav.CONTROLADOR;

namespace Cotizav.PRESENTACION.Maestro
{
    public partial class IUPeriodo : Form
    {
        List<PERIODO> periodos;
        CtrlPeriodo ctPeriodo;
        
        public IUPeriodo()
        {
            InitializeComponent();

            periodos = new List<PERIODO>();
            ctPeriodo = new CtrlPeriodo();
        }

        private void IUPeriodo_Load(object sender, EventArgs e)
        {
            periodos = ctPeriodo.getListPeriodos();
            gridPeriodos.DataSource = null;
            gridPeriodos.DataSource = periodos;
            setRowsReadOnly();
        }

        private void setRowsReadOnly()
        {
            foreach (DataGridViewRow dr in gridPeriodos.Rows)
            {
                dr.ReadOnly = true;
            }
        }

        private void gridPeriodos_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            if (gridPeriodos.DataSource != null)
            {
                gridPeriodos.Columns["idPeriodo"].Visible = false;
                gridPeriodos.Columns["mesPeriodo"].HeaderText = "Mes";
                gridPeriodos.Columns["anioPeriodo"].HeaderText = "Año";
                gridPeriodos.Columns["numeroCotizacion"].HeaderText = "N° de Cotización";
                gridPeriodos.Columns["numeroCartaCompromiso"].HeaderText = "N° Carta de Compromiso";
                gridPeriodos.Columns["eliminado"].Visible = false;
                gridPeriodos.Columns["activo"].HeaderText = "Activo";
            }
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            PERIODO per = ctPeriodo.getPeriodoActual();

            if (per != null)
            {
                if (per.mesPeriodo != dateMes.Value.Month || per.anioPeriodo != dateAnio.Value.Year)
                {
                    //registramos el periodo
                    if (MessageBox.Show(this, "¿Confirma agregar el periodo?", "Cotizav", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.OK)
                    {
                        if (chkesActivo.Checked)
                        {
                            PERIODO newPeriodo = new PERIODO()
                            {
                                mesPeriodo = dateMes.Value.Month,
                                anioPeriodo = dateAnio.Value.Year,
                                numeroCotizacion = 1,
                                numeroCartaCompromiso = 1,
                                activo = 1,
                                eliminado = 0
                            };

                            if (ctPeriodo.registrarNuevoPeriodo(newPeriodo))
                            {
                                MessageBox.Show(this, "Periodo registrado", "Cotizav", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                                periodos = ctPeriodo.getListPeriodos();
                                gridPeriodos.DataSource = null;
                                gridPeriodos.DataSource = periodos;
                                setRowsReadOnly();
                            }
                            else
                            {
                                MessageBox.Show(this, "Error al registrar periodo", "Cotizav", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show(this, "El periodo ya se encuentra registrado", "Cotizav", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                } 
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {

        }
    }
}
